From: Florian Müllner Date: Tue, 15 Dec 2020 18:23:14 +0000 (+0100) Subject: build: Pre-generate man pages at dist time X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~653 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=9ef9a5ff8a;p=gnome-shell.git build: Pre-generate man pages at dist time The man pages don't change very often, but draw in both docbook and asciidoc. The latter is particularly problematic, as some distros still ship only a python2 version of the tool. Address this by generating the man pages at dist time, and including the result in the tarball. Part-of: --- diff --git a/meson.build b/meson.build index 71b3ca471..4c913ff86 100644 --- a/meson.build +++ b/meson.build @@ -37,6 +37,7 @@ gst_req = '>= 0.11.92' nm_req = '>= 1.10.4' secret_req = '>= 0.18' +fs = import('fs') gnome = import('gnome') i18n = import('i18n') @@ -126,8 +127,12 @@ else endif if get_option('man') - a2x = find_program('a2x') - subdir('man') + if fs.exists('man/gnome-shell.1') + install_man('man/gnome-shell.1') + else + a2x = find_program('a2x') + subdir('man') + endif endif mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir') @@ -287,6 +292,7 @@ if get_option('gtk_doc') endif meson.add_install_script('meson/postinstall.py') +meson.add_dist_script('meson/generate-manpages.py') summary_options = { 'networkmanager': get_option('networkmanager'), diff --git a/meson/generate-manpages.py b/meson/generate-manpages.py new file mode 100644 index 000000000..ce2ca2828 --- /dev/null +++ b/meson/generate-manpages.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import os +from pathlib import PurePath +from asciidocapi import AsciiDocAPI + +man_pages = [ + 'man/gnome-shell.1', + 'subprojects/extensions-tool/man/gnome-extensions.1', +] + +sourceroot = os.environ.get('MESON_SOURCE_ROOT') +distroot = os.environ.get('MESON_DIST_ROOT') + +asciidoc = AsciiDocAPI() + +for man_page in man_pages: + page_path = PurePath(man_page) + src = PurePath(sourceroot, page_path.with_suffix('.txt')) + dst = PurePath(distroot, page_path) + stylesheet = src.with_name('stylesheet.xsl') + + asciidoc.options('--xsl-file', os.fspath(stylesheet)) + asciidoc.execute(os.fspath(src), outfile=os.fspath(dst)) diff --git a/subprojects/extensions-tool/meson.build b/subprojects/extensions-tool/meson.build index 5460f626d..18a38a023 100644 --- a/subprojects/extensions-tool/meson.build +++ b/subprojects/extensions-tool/meson.build @@ -6,6 +6,7 @@ project('gnome-extensions-tool', 'c', gio_req = '>= 2.56.0' +fs = import('fs') gnome = import('gnome') i18n = import('i18n') @@ -46,9 +47,12 @@ if bash_completion.found() endif if get_option('man') - a2x = find_program('a2x') - - subdir('man') + if fs.exists('man/gnome-extensions.1') + install_man('man/gnome-extensions.1') + else + a2x = find_program('a2x') + subdir('man') + endif endif if not meson.is_subproject()